It sounds like you tested this by repeatedly commanding the servo to move 10° then making a mark where it moved to. So, to quantify the accuracy of your servo’s ability to repeatably move 10°, I found the difference (in degrees), between each of your marks then calculated the standard deviation of those differences. My calculation yielded a standard deviation value of about 1.1° for both of your data sets (the green dots and blue dots). Although servo manufacturers do not usually provide this type of information, I think this is about the accuracy that you should expect from hobby servos like this.
There are two main obstacles to compensating for this type of random error, neither of which can be overcome with your programming. First, the accuracy is going to be limited by the servos internal position control circuitry. Second, your testing setup to evaluate that accuracy seems susceptible to measurement error. It looks like your measurement accuracy depends on how well you can hold your marker normal to the surface to make the marks and your being able to make the mark without accidentally loading and deflecting the pointer.
If it is important for you to achieve more accurate motions, you might consider using one of our servos that provide access to the feedback voltage. Using the analog feedback, you can take the position accuracy into your own hands by making your own position control algorithm that will act in addition to the servo’s control circuitry. You can identify the servos with analog feedback on the table from our RC-Servos category page by looking for checks in the “Feedback?” column. The FEETECH FS90-FB servo has the most similar characteristics to the Power HD Micro Servo HD-1900A.