Trying to apply a force on a ball at certain angles but the ball moves back and forth or otherwise moves erratically

When I apply a force on my ball, it just rocks back and forth on its origin until I move to a different angle to apply the force, then it just sorta floats around in seemingly random directions.

		rigidbody.AddForce( ( Mathf.Cos(angle) * transform.forward) + (Mathf.Sin(angle) * transform.right) * 2);

I read somewhere to use AddTorque instead of AddForce, and that sorta worked. The only problem with that was the ball would start to spin on itself uncontrollably if you change the angle too fast, or if it hit a wall, it would at times just stop accepting any sort of user input.

Any advice on what I can do to fix this?

You would like to adjust your torque parameter in the inspector to find the one you need, and to make those things easier add this parameters.

public float angDrag;
    public float spinForce;
    public float maxAngVel;
    void FixedUpdate()
        rigidbody.angularDrag = angDrag;
       rigidbody.maxAngularVelocity = maxAngVel;
       rigidbody.AddTorque(0,10 * spinForce,0);
       if (Input.GetMouseButtonDown(0))
            this.rigidbody.AddForceAtPosition(Vector3.right * 1000, transform.position);

Play the game and adjust angDrag, spinForce, maxAngVel in the inspector