ac current meter using acs758 hall sensor

    l += pow(adc_raw - adc_zero, 2);

You don't want to use pow() here, it uses float, double and is far too slow (it does logarithms, antilogarithms).

    long val = adc_raw - adc_zero ;
    l += val * val ;

You need to be sampling the waveform at 1000Hz or more for good accuracy so its important
the maths isn't too slow. Lose the delays - if you want to control the timing you should use millis() or
micros() so you can synchronize to a multiple of 50 or 60Hz.

First look at a set of raw values from the sensor to check they are what you'd expect (sample a
bunch into an array, then print out the array, printing out is too slow also). You should see a
clear sinusoidal pattern with the correct amplitude.

Then test your calculation code with known correct raw values to see if the arithmetic is correct.