How do I fix this lerp this float so it doesnt snap from animation to another

Im trying to get these animations to play smoothly but I cant get it to not snap between animations because the code changes the float to fast. I need it to basically lerp the variable.

here is my code
using UnityEngine;
using System.Collections;

public class MoveAround : MonoBehaviour {
	public Animator anim; 
	public float rotationSpeed = 1;
	public float lerp = 0.1f;
	public float rotatsada; 
	void Update () 
	{
		float rotation = Input.GetAxis("Horizontal") * rotationSpeed;
		float speed = Input.GetAxis("Vertical");
		float rot = rotation;
		float sped = speed; 
		float lerpRot = Mathf.Lerp(rot,rotation, 0.1f);
		float lerpSpeed = Mathf.Lerp(sped,speed, 0.1f);

		rotatsada = lerpRot;
		if(Input.anyKey && !Input.GetKey(KeyCode.Mouse0))
		{
			if(Input.GetKey(KeyCode.LeftShift))
			{
				anim.SetFloat("Speed", lerpSpeed);
			}
			else
			{
			anim.SetFloat("Speed", lerpSpeed * 0.5f);
			}
			anim.SetFloat("Direction", lerpRot);
		}
	}
}

You do this:

float rotation = Input.GetAxis("Horizontal") * rotationSpeed;
float speed = Input.GetAxis("Vertical");
float rot = rotation;
float sped = speed;

But rotation equal to rot.
Try this:

float rotation = Input.GetAxis("Horizontal") * rotationSpeed;
float speed = Input.GetAxis("Vertical");
float rot = anim.GetFloat("Direction");
float sped = anim.GetFloat("Speed");