Pull the starter off, look through the mounting hole, and turn the engine to inspect the flywheel ring gear. it sounds like you've got a damaged spot on the ring gear that's stopping at the starter location occasionally. Either replace just the ring gear on a standard shift flywheel, or change the whole flex plate if you're running an automatic trans in that case. It's also possible the solenoid linkage could be damaged or out of adjustment, allowing the starter to begin turning before the pinion gear is fully engaged into the flywheel on occasion.
Jerry