Calico,
Tend to agree with Derek and Russ in a general. Skipped steps is a rather loose term and "exact" reason can be very elusive. I think that you have mechanical / electrical mechanical problems that are creating the skip.
Certainly can be wrong! Once you have a program that allows for repeating the problem then you have a means to narrow it down through disciplined observation and testing.
Here is a true practical example. Like you ,I have a problem with a mill that will not do 3D fine cutting without fault.
I machined the same piece using my engraving machine and same code. No problem at all ( three tries / 20 hours of machining / and the engraving machine uses 253000 steps inch...but no problems ).
The mill was found to have an axis bearing problem such that normaly it would not show up, but after measuring the torque required to turn the screw, after some "manual similation" of code moves , i found it requires an additional 70 to 100 in-oz of motor torque and thus all my "freeboard" in motor tuning was used up and thus a fault. Varying config settings and other stuff mentioned will not cure my problem.
The only fix is to modify that axis and do away with the problem. Finding the problem was very, very, very elusive. Now just need to get off my ask and fix it!
Forget about my problem though. Check your machine out and be confident that all is well, then apply the code to observe ( do post that code ).
You'll find the darn cuplrit.
RICH
RICH