Heres a suggestion before you by a new starter.
Take the old one out and check the brushes and the commutator(where the brushes ride).
If the brushes are worn and not making good contact it will act like you describe.
If the commutator is dirty or worn you can clean it with sand paper to get a better contact surface.
Brushes are available from
www.partsnmore.com. Pretty easy to change.
While you have it out check the bearings at both ends. They don't usually go bad but check'em while you have them out. If the bearings are bad you will probably need a new starter. I have scavenged the proper bearings at a starter overhaul shop but its a hit or miss.
If its just brushes and Commutator you will have saved a pretty good chunk of dough.