#define trigPin 0
#define echoPin 1
that's a bad idea. this is your serial communication port. it means you can't use Serial.print to debug.
Use other pin. move them somewhere else. You can use Analog Pins as Digital pins. move MS1 to A1, move MS2 to A2 and have trigPin to 11 and echoPin to 12
This is slow because you asked it to be slow:
you check the distance at every loop. distance checking takes some time esp when there is nothing in front of your sensor. worse you add a 250ms delay after each display to the LCD which you do at every loop --> get rid of the 250ms wait and use the standard technique for doing several things at the same time to only update the LCD every second for example.
So while you do all this stuff your motors are off. that's because you've programmed this so that when the button is pressed, you move for 1 ms and then stop.
so basically, lets say your sensor measuring takes 10ms, your code today does this:
spend 10ms checking the distance
update LCD (will take a few ms too)
wait 1/4 of second
check if button is pressed and if so move the motor for 1ms and stop
so if you keep the button pressed, you get 1ms worth of motor action for ~270ms worth of doing other thing... no wonder it's slow right?
what you need to do is not stop the motor. if button is pressed, get the motor going as you want. then if no button is pressed next time you come back, then stop the motor. this way the motor keeps spinning all the time while you do the distance ranging and LCD update
Last (but not least) - WHEN ALL THE ABOVE IS WORKING - you will find out that distance ranging that way is pretty slow overall esp. when there is nothing in front your robot. I recommend using the NewPing Library for Arduino as it lets you do smart things when sensing distance.