Use the lat/lan from a device tracker to create a REST sensor.
Assuming your device tracker is named device_tracker.myphone you can use this code:
sensor
- platform: rest
name: My Phone City
resource_template: >-
{%- set lat = state_attr('device_tracker.myphone', 'latitude') -%}
{%- set lon = state_attr('device_tracker.myphone', 'longitude') -%}
https://nominatim.openstreetmap.org/reverse?lat={{lat}}&lon={{lon}}&format=json
value_template: '{{ value_json.address.city }}'
This will periodically (SCAN_INTERVAL) update the sensor. You need a more elaborate solution (template sensor or automation) to update the city for every state update of the device tracker. Depending on your needs.