hmmm, the map function allows you to "convert" from one range of values to another, with a direct correspondence.
Something like
map(sourceValue, x, y, a, b)
so the range "from x to y" would be mapped into the range "from a to b".
When i read your message, and you say the output values of the map function are almost fixed between 140-150, it makes me think that the origin values (the range from 1140 to 1830) must also be limited to a certain smaller range, somewhere in the middle of the range.
I would suggest that you output your "drive" variable into the Serial Monitor to see what range of values it is really getting. Maybe then you can adjust the map function to work with the values you are getting on your drive variable.