I like the idea of Snivy losing faith in Ash as a trainer. He could send her up against a tough opponent where she can win, but he keeps making mistakes with her, not realizing her true power. This could take the form of having her use Leaf Blade, a close range attack, when her opponent is strong at close range and she wants to use Leaf Storm, which Ash doesn't want her to use since it lowers her special attack. In this situation, I'd have Snivy have the Contrary ability so that Leaf Storm's effect would boost her special attack, only not have Ash realize it. In essence, she loses the first match, but wins the second when she doesn't listen to Ash. She then leaves, seeing him as little better than her original trainer. This would also be a great time to introduce N. In fact, N could even be the tough opponent that she and Ash would end up facing. A long story short, she travels with him a bit and learns about Team Plasma and their goals. While their goals are good, their method is not and there are Pokémon that are hurt by it, intentionally or otherwise. We learn more about her original trainer and the differences between him and Ash. Eventually, when Ash encounters N and/or Team Plasma once more, after showing his compassion to her once more, she decides to go back with Ash.
Team Rocket will pay for their crimes.