A smooth single-axis rotaion (fps camera)

ok, im still relatively a beginner at c# im slowly working on a game (so far so good).

but right now my issue is i have to floating hands that orbit the players side (by the way this is a first person game), but what im trying to currently do is make it so that when looking to the sides i want the hands to gradually realign themselves, or make them stay in place unless the amount turned is significant enough. but i have no idea where to start.

so far all i have is
void LateUpdate()

        transform.position = target.position + new Vector3(0, 0, 0);
		transform.rotation = target.transform.rotation; //this is a placeholder

thx in advance.

Below is a script for your functionality. To make it work, the location of the axis of rotation for the hands must match the axis of the camera. You can do this in one of two ways. You can either author the hands with the center at the correct location, or you can use an empty game object. Place the empty game object at the same position as the camera (*don’t make it a child). Then position the hands so they look the way you want with respect to the camera view. Finally make the hands a child of the empty game object. If you use the second method, the script goes on the empty game object, not on the hands:

public class HandRotator : MonoBehaviour {
	private Vector3 v3Offset;
	private GameObject goFollow;
	private float speed = 0.5f;

	void Start () {
		goFollow = Camera.main.gameObject;
		v3Offset = transform.position - goFollow.transform.position;
	void Update () {
		transform.position = goFollow.transform.position + v3Offset;
		transform.rotation  = Quaternion.Slerp (transform.rotation, goFollow.transform.rotation, speed * Time.deltaTime);