Why is the DC motor receives higher voltage from the PWM than what is given?
An unloaded DC motor will have a speed proportional to voltage as you expect. 


At stall the current into the motor will be limited only by the motor coil resistance. This will result in high starting current and torque.
As the motor accelerates the back-emf will rise. The current into the motor will reduce to \$ \frac {V_{IN}-V_{BACKEMF}}{R}\$.
The motor speed will settle down when the back-EMF is close to the supply voltage.


When running with PWM the situation may change a little. (I've never studied this but it shouldn't be too far off the truth.)


If we take the 50% PWM condition and assume initially that the motor is running at 50% speed: we can see from our previous discussion that the back-EMF will be half the full-speed level.
We now apply a full voltage PWM pulse. The current produced will be half the stall current which is much higher than that required to keep the motor running at no load. The result is that the motor will continue to accelerate until it settles down at a much higher speed than expected.


As a result you should expect that the % speed will be higher than % PWM until you approach 100%. This concurs with your observations.

One way to create a more linear response would be to use a switched-mode power supply (SMPS) approach where the supply the motor sees is smoothed and stable. A buck converter may achieve this.

An alternative would be to use an encoder feedback signal to adjust the PWM to give the desired speed.