Running a stepper motor directly from Arduino outputs... will zeners help?

Yup, that's the standard way to do it - but they need to be fast diodes, not 1N4001s. schottkys are inherently fast, 1N4148's are extremely fast too (designed for logic switching). Best to ensure decoupling right next to the diodes too to absorb the spikes at source.

But personally I don't like the idea of directly driving inductors this way, convenient though it is. Certainly schottkys are preferred for a bit of extra margin.