Setting non-linear steps from rotary encoder for motor speed control

PaulS:
Before you can map encoder speed to an amount to increment, you need to define what that relationship is. Draw a graph, post a table, something to show how much you want to increment by when the speed is x.

Thats where I am stuck.... I don't quite know how much I want to increment by. I simply don't want 150 turns of the rotary encoder to get to 100% PWM.

I just played around with this code (I found on another site):

      int step = 1<<(int(encoder1.encoder_speed/9));
      
      if(encoder1.direction == 1) { //turning clockwise
        encoder1.speed_value = constrain((encoder1.speed_value + step),0,254);
      } else {
        encoder1.speed_value = constrain((encoder1.speed_value - step),0,254);
      }

It seems to gives output much closer to what I am looking for:

Encoder Speed: 0.00
Speed1: 1
Encoder Speed: 2.67
Speed1: 2
Encoder Speed: 1.01
Speed1: 3
Encoder Speed: 8.62
Speed1: 4
Encoder Speed: 1.26
Speed1: 5
Encoder Speed: 127.27
Speed1: 254

A few slow turns incremented by 1 and a quick flick of the encoder gave me 100% / 254.

I have to admit I haven't fully worked out how my new 'step' variable is getting calculated.