I recently had to load an instance of a specific control within a masterpage base class that had no direct references but would be available at run-time. Here is how I approached it.
I first used LoadControl via a fully qualified assembly name. I then used dynamic to set properties to bypass compile time checks:
Control knownControl = FindControl("KnownControl");
if (knownControl != null)
{
string assemblyName = "Com.YourNameSpace.UI";
string controlAssemblyName = string.Format("{0}.{1},{0}", assemblyName, "AwesomeControl");
Type type = Type.GetType(controlAssemblyName);
if (type != null)
{
dynamic control = LoadControl(type, null);
control.YourAwesomeName = "Awesome Name";
control.ShowAwesomeName = true;
knownControl.Controls.Add(control);
}
}