Had an experiment with micro-stepping today. Increasing micro-stepping reduced noise, and increased the speed before it started skipping steps.
Im using GRBL for testing, which has a limit of 30kHz, so 1/8 is about as high as I can go and still achieve a sensible speed. Any higher and the Arduino crashes.

What micro-stepping settings do others tend to use when running Mach 3 or similar from a parallel port?
The drivers go up to a whopping 1/256!