General Setup Problem - PC to Arduino

Hello.
I have some questions regarding the Arduino - Computer communication and any help would be much appreciated.
First of all, my setup includes Arduino uno board, 6 stepper motors, 3 Adafruit motor shields and 2 servo motors. Arduino and motors are used to control the robot. On the other hand I have a webcam, connected to computer by a USB cable, that is used to provide vision to the robot. So now, I want to take the image from the camera, do some computation (on the computer) and provide the robot with necessary information on where to move (just to send number of steps/angle to each motor). My first question is how to do this in real time? One idea that I had was to upload a program that waits until something is send by a serial connection and then have a switch - case statement that determines what action to take according to the input. Problem with this approach is that once the command is sent I cannot interrupt the procedure until it is done. Is there a way to directly access the motors through Arduino (and if yes how to do it)? This way I could avoid running anything on Arduino and just control the motors from my PC. I also want the user to be able to control the robot (by some kind of GUI) so that he can interfere in case anything goes wrong, or if he wants to operate the robot manually. So basically, I need an advice on what is the best approach here and how to implement it?
Thanks!

One idea that I had was to upload a program that waits until something is send by a serial connection and then have a switch - case statement that determines what action to take according to the input.

Seems like a good idea.

Problem with this approach is that once the command is sent I cannot interrupt the procedure until it is done.

If done properly, this shouldn't be a problem. Get some serial input. If it completes a packet, you know what to do next, or possibly instead of what you planned to do. If not, do the next part of what was planned.

You don't, for instance, need to step all the steps input without checking for a "Hey, no, don't do that!" message.

Is there a way to directly access the motors through Arduino

That would depend on what you mean by "directly access". In general, all that the shields are doing is taking your instruction to step and converting that into the necessary HIGH and LOW states for the correct pins, to make the motor actually step.

This way I could avoid running anything on Arduino and just control the motors from my PC.

Without the motor driver shields? I don't think so. They are doing far more than you seem to think that they are.