Instantiate will always give you an object. The better way to do that is first convert it in GameObject then access your script from there.
GameObject go = Instantiate (myButtonPrefab) as GameObject;
btnController bc = go.GetComponent<btnController>();
bc.Setup(name,0);
It is for when your prefab has already btnController attached.
If you want to add script, do that as,
btnController bc = go.AddComponent<btnController>();
bc.Setup(name,0);