Next time it happens, tap on the starter a few times with a hammer and see if anything changes. If it cranks right afterwards it's likely the starter solenoid sticking. You'll need to replace the starter at that point.
If that doesn't change anything, check the voltage drop on your cables. Put your multimeter on volts and place one lead on the positive battery post, and then the other at the study on the starter solenoid that the battery cable connects to. Have someone crank the starter. Your reading shouldn't be much more than about 0.3V.
Repeat with one meter lead on the negative battery post, and another on a clean ground around the starter. A transmission bellhousing bolt head would work well. Also shouldn't be much more than about 0.3V.