Medical imaging has the same problem of finding an optimal mapping of grey levels.
The optimal mapping depends on the task to accomplish. It is determined by trying a reasonable mapping compatible with the task, and then showing it to users to get their feedback.
In your case, you could determine the range of input values that matter to you (ie. define a window center and a window width), and apply a sigmoidal LUT so that you can precisely distinguish the values in this range and still be able to see the values outside this range but with less precision. You can use this for instance:
In addition there is a also solution to achieve "perceptually linear images", ie. that a difference of 2 in the pixel value is perceived as being twice more than a difference of 1 in pixel value. This requires that the screen on which you display your image is calibrated.
This is achieved by a standard, the DICOM Grayscale Standard Display Function.
See there for a presentation on the topic:
and there for the actual standard, with a discussion on the Barten eye model which describes the performance of the visual system at noticing light intensity differences: