The code you have posted has no line
myServo.write (Serial.read())
Serial.read() reads a single byte
This means if you send the characters "20"
your code reads in
Direction = Serial.read();
and then Direction has value '2'
next iteration of your loop
and then Direction has value '0'
it is not as easy as
myServo.write (Serial.read()
Some of your commands are one byte some are two bytes.
Your code needs some kind of logic to determine if it is a one byte or a two byte command
This is possible. But I suggest something different
make your App send a command-start-character the command itself and a command-end-character
ussually command start is a '<'
and
command-end is a '>'
this means your commands look like this
<10>
<20>
etc.
for this you need a better receive-logic than just
Direction = Serial.read();
So read this tutorial to get familiar with serial receiving
best regards Stefan