Potential[x_] = 0.5*k*x^2;
Threshold[n_] = 10*n;

If[Potential[x] >= threshold[n],
Force[x_, v_] := -k*x-G*v;];

のように、条件にあった時だけIf文内を実行したいのですが、If文の条件判定がうまく機能していないようです。
条件分に変数のある関数が入っていたらまずいのでしょうか。
下のように、条件文の前で関数の値を置き直せば問題ないのでしょうか。
こうすると動くようになったと思いますが、実際のものは煩雑でして正しく動作しているのか分かりません…。
よろしくお願い致します。

Potential[x_] = 0.5*k*x^2;
Threshold[n_] = 10*n;

Potential_value = Potential[x_];
Threshold_value = Threshold[n_];

If[Potential_value >= Threshold_value,
Force[x_, v_] := -k*x-G*v;];