3D: how to avoid jerks in a character movement using accelerometer

I have a animated bird flying at constant speed, bird moves with the movement of mobile (left, right). when i slowly move the mobile the bird movement is perfect but when mobile movement on left right is fast the bird movement is in jerks. I also use a float variable filter to avoid jerks but its not working i guess. here is my code…!

	private float speed = 10.0f;
	private float filter = 5.0f;

	private int maxX = 3;
	private int minX = -3;

	private Vector3 accel;
	void Start(){
		accel = Input.acceleration;
	void Update(){
		GetComponent<Rigidbody> ().AddForce (new Vector3(1000,0,0), ForceMode.Acceleration);
		// filter the jerky acceleration in the variable accel:
		accel = Vector3.Lerp(accel, Input.acceleration, filter * Time.deltaTime);
		Vector3 dir = new Vector3(accel.x, 0, 0);
		// limit dir vector to magnitude 1:
		if (dir.sqrMagnitude > 1) dir.Normalize();
		// move the object at the velocity defined in speed:
		transform.Translate(dir * speed * Time.deltaTime);
		Vector3 pos = transform.position;
		// clamp new position:
		pos.z = Mathf.Clamp(pos.z, minX, maxX);
		//pos.y = Mathf.Clamp(pos.y, minY, maxY);
		// and assign it to the object:
		transform.position = pos;

any help would be appreciated.

Use FixedUpdate and replace Time.deltaTime with Time.smootDeltaTime.