How to control two 270 degree servo in 0.3deg steps using Uno

I am interested in using two servos with the following specification;
Accuracy: 0.3°
Controllable angle range from 0 to 270 degrees
Control Method: PWM
Pulse Width: 500~2500
Duty Ratio: 0.5ms~2.5ms
Pulse Period: 20ms

I would like to move the servo slowly by very small amounts.

The specification suggests that a pulse width of 500µs would move the servo to 0° and pulse width of 2500µs would move the servoc to 270°.
Each millisecond of pulse width therefore corresponds to 0.135° of movement.
However since the servo only has an accuracy 0.3° there is probably not much point in varying the pulse width by less than 2-3µs is that correct?

My question is how do I send a PWM signal to the Arduino where the pulses vary between 500-2500µs where the steps vary by 2µs and in particualr how and where does the 20ms Pulse Period fit in?

I am using an Uno can I change the analogueWrite resolution for PWM on two pins to at least 10bits if so which pins?

Another approach seems to be to use the Servo library.
The write() function seems to expect an angle between 0 and 180 so it does not have the 270 range that I need or the resolution.
So lets say I use the writeMicroseconds() function that seems to let me output pulses between 500-2500µs but what about the 20ms Pulse Period what exactly is that and how is it set?

So lets say I use the writeMicroseconds() function that seems to let me output pulses between 500-2500µs but what about the 20ms Pulse Period what exactly is that and how is it set?

The servo.writeMicroseconds() function should be variable by 1 us, although expecting 0.3 degrees, accurately. from a hobby servo is probably wishful thinking. The servo library takes care of the 20 ms (50Hz) part.

The minimum and maximum pulse width and the refresh rate are set in servo.h.

#define MIN_PULSE_WIDTH       544     // the shortest pulse sent to a servo  
#define MAX_PULSE_WIDTH      2400     // the longest pulse sent to a servo 
#define DEFAULT_PULSE_WIDTH  1500     // default pulse width when servo is attached
#define REFRESH_INTERVAL    20000     // minumim time to refresh servos in microseconds

groundFungus:
The servo.writeMicroseconds() function should be variable by 1 us, although expecting 0.3 degrees, accurately. from a hobby servo is probably wishful thinking. The servo library takes care of the 20 ms (50Hz) part.

The minimum and maximum pulse width and the refresh rate are set in servo.h.

#define MIN_PULSE_WIDTH       544     // the shortest pulse sent to a servo  

#define MAX_PULSE_WIDTH      2400    // the longest pulse sent to a servo
#define DEFAULT_PULSE_WIDTH  1500    // default pulse width when servo is attached
#define REFRESH_INTERVAL    20000    // minumim time to refresh servos in microseconds

Why was the original MIN_PULSE_WIDTH 544 it seems an odd number?
Why is the DEFAULT_PULSE_WIDHT 1500 and not 1472 ( (544+2400)/2 ) ?
Presumably REFRESH_INTERVAL 20000 is the 20ms Pulse Period?

So it looks like, for my application, I just change two settings;

#define MIN_PULSE_WIDTH       500     // the shortest pulse sent to a servo  
#define MAX_PULSE_WIDTH      2500     // the longest pulse sent to a servo

I have been thrown a bit though by documentation which say that for the Uno the following are default PWM frequencies for pins;
D3 & D11 490.20Hz
D5 & D6 976.56Hz
D9 & D10 490.20Hz

What do these frequencies relate to, are the all being changed to 50Hz when I use the Servo library and does it make any difference which pins I use?

Why was the original MIN_PULSE_WIDTH 544 it seems an odd number?
Why is the DEFAULT_PULSE_WIDHT 1500 and not 1472 ( (544+2400)/2 ) ?

I'm damned if I know. It must make sense to the author of the library.

Presumably REFRESH_INTERVAL 20000 is the 20ms Pulse Period?

Yes.

I have been thrown a bit though by documentation which say that for the Uno the following are default PWM frequencies for pins;
D3 & D11 490.20Hz
D5 & D6 976.56Hz
D9 & D10 490.20Hz

The servo signal and the PWM (analogWrite) are different and sepatate animals and have no relation to each other except that using the servo library disables PWM on pins 9 & 10 (see the Servo library reference). The servo library does not change the PWM frequency and PWM does not affect the servo refresh frequency. PWM is only available on the PWM pins (3, 5, 6 ,9, 10, 11). Servos can be controlled by any pin.

Why is the DEFAULT_PULSE_WIDHT 1500 and not 1472 ( (544+2400)/2 ) ?

1500 is the default center pulse width of the servos. That is built into the servo control electronics. It may actually be more or less. Calibrate for each servo.

Are you sure that the servos allow for a 0.3° accuracy and repeatability?

PPM Pulse width typically is 1-2ms.