I guess that your simulation is pixel based.
In that case, what I would do is to store each pixel of the edge of each water sources in an array when you create the sources.
That way you have access to all the places where you creatures can go have a drink.
Then you just have to run through all those locations and compute the distance between them and your creatures. No need for square roots (time consuming) you can just compute d = x² + y².
You find the smallest one and this is your creature target.