Python, arduino y servomotor

buena a todos, tengo un problema quiero controlar la posición de un servomotor RC mediante una interfaz grafica hecha en python, pero el servo solo se mueve un poco, aqui le dejo los codigos. espero su ayuda

codigo python:

import sys
import serial
import time
from Tkinter import *


ser= serial.Serial( "/dev/ttyACM0", 9600)
print ser.portstr
print("Cargando Puerto")
time.sleep(3)



def mover(ang):
  print("angulo", ang)
  ser.write(ang)


app=Tk()
app.title ("Servomotor")

vp= Frame(app)
vp.grid(column=0,row=0, padx=(50,50), pady=(10,10))
vp.columnconfigure(0,weight=1)
vp.rowconfigure(0,weight=1)

ang=int()
angulo=Scale(vp, label="Angulo",orient= HORIZONTAL, resolution=1, to=180, length=250, variable=ang,command=mover)
angulo.grid(column=1, row=3)


app.mainloop()





codigo arduino uno:

#include <Servo.h>

int ang;
Servo ser1;
void setup() {
Serial.begin(9600);
ser1.attach(9);

}

void loop() {
while(Serial.available()>0)
{
  delay(10);
  ang=Serial.read();
  ser1.write(ang);
} 

}
ser.write(ang)

Cuántos bytes envía? Si envía más de uno, tenemos el siguiente problema:

void loop() {
while(Serial.available()>0)
{
  delay(10);
  ang=Serial.read();
  ser1.write(ang);
} 
}

Si recibe más de un byte, lee el primero, hace el resto; pero como recibió más de uno, Serial.available() todavía tiene bytes para leer, entonces el ángulo del servo cambió más de una vez por "orden" (posiblemente las consecuentes lecturas devolvían cero)