Q:

Realistic Valve Wheel Rotation in Unity

I'm working on a realistic pipe valve wheel rotation in Unity. this is what i already have: 
 [SerializeField] private float cur_HP;
private const float max_HP = 100;
private Vector3 PrevmousePos;
private bool SpaceIsPressed;
// Start is called before the first frame update
void Start()
{
    cur_HP = max_HP;
}

// Update is called once per frame
void Update()
{
    SpaceIsPressed = Input.GetKey(KeyCode.Space);
    Wheel();

}

void Wheel()
{
    Vector3 mouseDelta = Input.mousePosition - PrevmousePos;

    if (mouseDelta.x > 0 && SpaceIsPressed)
    {
        float amount = 0.01f;
        cur_HP -= mouseDelta.x * amount;
    } else if(mouseDelta.x < 0 && SpaceIsPressed)
    {
        float amount = 0.01f;
        cur_HP += mouseDelta.x * amount;
    }
    if (cur_HP <= 0)
    {
        cur_HP = 0;
        Debug.Log("You have unlocked");
    }
    if (cur_HP > 100)
    {
        cur_HP = 100;
    }
    transform.localRotation = Quaternion.Euler(0, 0, (720 / max_HP * cur_HP));
    PrevmousePos = Input.mousePosition;
}

What i want right now. just like valve pipe wheel in real life. if you wanna loosen it. you need to use a lot of force to rotate to the right. and then it gets easier to rotate the more you loosen it. vice versa if you want to tighten it. so with my tiny brained mind can't think of any math or code in my help. can you guys give me tips or hint how to do it?
Edit: here is gif about what i have right now, i'm using the space key en right sweep of my mouse to rotate the wheel https://gyazo.com/004b2f8c4424476c796ae42ad28dacce

A:

So you have cur_HP which should set how much the valve is rotated, and it is set with mouseDelta.x.
You now want the next modification (mouseDelta.x) to be lesser, the closer cur_HP is to max_HP:
cur_HP += (mouseDelta.x * max_HP/cur_HP) * amount;

This will make the wheel linearly slower the closer to the end you are.
You may need to tweak the amount variable, since the wheel will now spin 100 times faster when at 1 degrees spinned. 
Make sure to handle when cur_HP is 0, since dividing by zero is highly illegal.

Example, same X movement, different tightness:
Tightness 20%

cur_HP = 20
max_HP = 100
mouseDelta.x = 1
amount = 0.1f

--> new cur_HP = 20.5
Tightness: 60%

cur_HP = 60
max_HP = 100
mouseDelta.x = 1
amount = 0.1f

--> new cur_HP = 60.16666

