Two things come to mind. First check every connection on the starter, is clean and tight, even if it feels tight. Check and clean battery earth Ditto! I've had similar problems in the past, and all lead back to these very simple things. They may look clean and tight, but can still play up. Solinoid also comes to mind, check that, and the wires to the ignition switch, same principle can appear tight and clean, but only needs a slight movment.
Is this a sudden problem, or long running?