It doesn't seem like electrical noise to me.  Once it gets to a certain point in the program, it E-stops.  If I use the reset button and try to continue the program, it will immediately E-stop again.  It refuses to progress past this point, but I can still manually jog without a problem.  I'll try playing with the debouncing when I get a chance though.
joeaverage, my application is probably very different from most.  I'm using only stepper motors instead of a continuous spindle, because I need accuracy rather than speed.  I'm winding fairly complex patterns, not simply a helix.  I don't have encoders, so I'm relying on dead reckoning of the steppers, which seems to work well enough.  I actually wrote my own Python script to generate G code.  I set G91 relative coordinates, so I could simply tell it how far to move for the next step.