Setting the "0" end as one of the ends of the measurement is incorrect. A measurement of length must have two values both of which have a limit to their precision. Setting the "0" end as one measurement implies one of your measures has perfect precision, which it does not.
The ruler should be placed casually so both readings fall randomly within the interior of the ruler (so both readings are greater than 0). Then the measures are read.
This gives you two proper measured values, each of which will have significant digits the last of which is an estimate... (an estimate of how many tenths of the previous digit), then you take the difference between the two measures to find that length.
The precision of the measurement is only as good as your estimated last significant digit. If the ruler is marked in steps of 0.001mm and you are using your eyes to read it, your last digit will be the one where you reach the limit of what you can see, so you have to estimate. If you are making the reading with a magnifying glass you may get another significant digit, with a microscope you might be justified in getting additional significant digits... the scale of the ruler and the resolution of your view is what determines the precision of your measurement, not the ruler's markings alone...