According to Servo.h the pulse width is between 544 and 2400 µs. I do not fully understand Servo.cpp, but I think that a 2 MHz base frequency is used and a pulse every 20 ms.
Then a 16-bit timer uses 40000 counts for 20ms and the period between 544 and 2400 µs has 3712 counts. With 180 degrees full scale that is 0.05° accurate.
I'm not sure if my calculations are okay ![]()
If they are okay, that is more than the integer accuracy for the degrees of the Arduino function.
However, I can not find a library that uses this.
I suppose that the Servo.writeMicroseconds() will calculate the best Timer value for the pulse in microseconds. That calculation rounds to the nearest timer value. The 544 to 2400 µs are a span of 1856 µs, that is 0.1° accurate. Perhaps 0.15° due to calculation rounding.
It seems that for now you should try the Servo.writeMicroseconds().