Need help with gas lp tank level

Hi guys , im trying to build a gas lp tank level with esphome ,and a 49e sensor (hall) the dial had a small magnet that rotate to show the tank level , that can be read with a hall sensor ,

im using a esp12f , battery power with a 18650 , with a Tp4056 and a solar panel of 6v 1w ,

the hall sensor reads very well but from 5% to 50% the Raw value increase, then while the magnet pass the 50% mark on dial it drop again so from 5% to 50% is the same value than 95% to 50% , i cant find the solution for 1 sensor to read from 5% to 95% , also i notice the value from the sensors change between reads.

i will show you all i been doing


i2c:
  sda: GPIO4
  scl: GPIO5
  scan: True
  id: bus_a

ads1115:
  - address: 0x48

dallas:
  - pin: GPIO2


sensor:
  - platform: ads1115
    multiplexer: 'A0_GND'
    gain: 6.144
    name: "analog"
    id: analog
    update_interval: 1s
    accuracy_decimals: 5
    unit_of_measurement: '%'
    filters:
#      - calibrate_linear:
          # Map 0.0 (from sensor) to 0.0 (true value)
#          - 1.652 -> 0.0
#          - 1.650 -> 10.0
#          - 1.649 -> 20.0
#          - 1.647 -> 30.0
#          - 1.646 -> 100.0
#          - 1.645 -> 50.0
    on_value:
      then:
        - lambda: |-
            id(A1) += x;


  - platform: ads1115
    multiplexer: 'A1_GND'
    gain: 2.048
    name: "Batteria Gas"
    id: "bateriaV"
    icon: "mdi:battery"
    update_interval: 5s
    unit_of_measurement: '%'
    accuracy_decimals: 0
    filters:
      - calibrate_linear:
          - 0.760 -> 0 #2.4
          - 1.343 -> 100 #4.2    

    
  - platform: ads1115
    multiplexer: 'A2_GND'
    gain: 6.144
    name: "analog2"
    id: analog2
    update_interval: 1s  
    accuracy_decimals: 5
    on_value:
      then:
        - lambda: |-
            id(A2) += x;    

  - platform: dallas
    address: 0xE13C01A816CD5F28
    name: "Roof temperatura"    

3d print case for the 49E

i been researching a lot diferent products like

https://rochestergauges.com/product/ds-1828/ (only sensor) $49 usd
https://www.isentinel.com.mx/product/isentinel-wifi-2-0/ $ 60usd

but im trying to build one myself a lot cheaper ,

any one knows con can achieve the reading from 0% to 100%

sorry for my english im from mexico