You might have had the urge to level-up some of your early captures and conquests with stardust. Resist it at all costs.
This is not a classic Pokémon game, where you raise your creature essentially from birth into a super fighting machine. Instead, with each passing level, many of the Pokémon you capture will meet or even exceed the maximum stats of your old party members. In short, if you want to be competitive, don't get attached to your Pokémon.
When you're focused on leveling, stardust is the game's most precious commodity. You can earn it by capturing Pokémon, collecting gym rewards and hatching eggs, but that's it. You can't even purchase stardust through the in-game shop with real money.
Save up your stardust until you've found the perfect specimen: a Pokémon with Combat Power (CP) that exceeds your past conquests. Then, if you wish, dump some stardust into it to make it even more powerful and competitive.
Note that there are two things that determine how powerful a Pokémon can become: your trainer level (which allows you to catch new, better party members and raise the maximum level of your existing ones), and the individual cap of each creature.
If you really want the best possible fighter, you need to exercise some patience. In our experience, gym-ready combatants (Pokémon that are at or can evolve to about 1,000 CP) tended not to appear until we reached level 10.