If you look closely in my program, Serial.begin() is not called every time after receiving each character (it is outside the for loop).
and to answer your second query, i just wrote that pins 1 and 2 are used, but i am actually using 5 motors which are connected to I/O pins 3 through 12. So i don't think that should be a problem.
Thing that i am concerned of is that there is accuracy difference of single 90 degree rotation and 360 degree rotation(when 4 output signals are sent to the board at a time).