How to make the ultrasonic sensor more accurate?

We use the code below for our ultrasonic sensor to detect people and we set 37 inches as our threshold. Once it detects distances below 37 then our led turns on and when it doesn't it turns it off automatically.

However, we noticed that if I stand in front of the ultrasonic sensors and they detect me it's okay, but one slight move to the right, our ultrasonic sensor immediately detects something else (sometimes it detects 1k inches of a distance), which automatically (and falsely) turns off our light.

Is there anyway to make it more accurate? Thank you!

int trigPin=13; //Sensor Trip pin connected to Arduino pin 13
int echoPin=11;  //Sensor Echo pin connected to Arduino pin 11
float pingTime;  //time for ping to travel from sensor to target and return
float targetDistance; //Distance to Target in inches
float speedOfSound=776.5; //Speed of sound in miles per hour when temp is 77 degrees.

void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

void loop() {
  digitalWrite(trigPin, LOW); //Set trigger pin low
  delayMicroseconds(2000); //Let signal settle
  digitalWrite(trigPin, HIGH); //Set trigPin high
  delayMicroseconds(15); //Delay in high state
  digitalWrite(trigPin, LOW); //ping has now been sent
  delayMicroseconds(10); //Delay in high state
  pingTime = pulseIn(echoPin, HIGH);  //pingTime is presented in microceconds
  pingTime=pingTime/1000000; //convert pingTime to seconds by dividing by 1000000 (microseconds in a second)
  pingTime=pingTime/3600; //convert pingtime to hourse by dividing by 3600 (seconds in an hour)
  targetDistance= speedOfSound * pingTime;  //This will be in miles, since speed of sound was miles per hour
  targetDistance=targetDistance/2; //Remember ping travels to target and back from target, so you must divide by 2 for actual target distance.
  targetDistance= targetDistance*63360;    //Convert miles to inches by multipling by 63360 (inches per mile)


Use NewPing lib and its median method.