The answer to UDDI or ESB is "it depends". The use of UDDI with web services means that your service's consumers don't have to know the exact location of the actual endpoint. The use of an ESB means that your service's consumers don't have to know the location, transport or message format of the actual endpoint.
If you need: transport mediation, message transformation, routing or orchestration then an ESB should be a tool that you are looking at.
If you only need location "transparency" then UDDI might suffice.