If you have a good volt meter then check the battery voltage AT THE BATTERY TERMINALS when cranking the motor. Record the votlage. Now move the positive probe of the meter to the starter end of the positive cable and check the voltage at the starter while cranking. Ideally they will be the same on both tests. What I expect you will see is a large votlage drop when checked at the starter vs at the battery terminals. If this is so then you have a bad or undersized cable. You can also do the same on the ground cable to check it. Any voltage drop you see in the cables is bad, it is power that is being lost and not avaiable to the starter.

lg
no neat sig line