Remove the starter, put it in a vise, and bench test it with a set of jumper cables. If it spins freely at good speed and doesn't make the cables overheat, find the circuit problem between the battery and the starter, both hot and ground sides- - - -probably loose or dirty connections, or possibly a short.
Jerry