First, make sure you understand the difference between an estimate and a guess. An estimate is a range (sometimes implicit or assumed,) and guess is a scalar value.
Second, you'll want to make sure you are differentiating between 'accuracy and precision.' The practical implications of these terms can differ between fields and contexts, but I think this commonly used image is a good illustration at a high level:

These two concepts are often confused. Note the top two dart-board images are both 'accurate' but the one on the right is values that miss the target.
In order to judge the accuracy of an estimate, you need to define your precision. For example, if I am asked to estimate someone's height, here are two possible estimates:
- between 1 and 3 meters.
- between 1.83 and 1.84 meters.
The person's true height is measured to be 1.866 meters. Estimate 1 is accurate but not precise. Estimate 2 is precise but inaccurate.
To sum up, the simple (or simplistic) answer to 'how make an estimate more accurate' is to reduce the precision. The usefulness of an estimate is generally reduced if the precision is extremely low. But before you start with an estimate, figure out what level of precision is required and what level of precision you can manage. If those don't align, you likely don't have enough information.
Otherwise, a good way to start is picking some broad upper and lower bounds. Then repeatedly narrow them until you start to lack confidence in either. At that point you are around your limits of precision.